Skip to content

chore: group dependabot into production vs non-production PRs - #411

Merged
benjamineckstein merged 1 commit into
mainfrom
chore/dependabot-group-prod-nonprod
Jul 4, 2026
Merged

chore: group dependabot into production vs non-production PRs#411
benjamineckstein merged 1 commit into
mainfrom
chore/dependabot-group-prod-nonprod

Conversation

@benjamineckstein

@benjamineckstein benjamineckstein commented Jul 4, 2026

Copy link
Copy Markdown
Contributor

Summary

Reconfigure Dependabot so weekly updates arrive as one PR per bucket instead of many:

  1. production-dependencies — the runtime dependencies + peerDependencies of the five published packages (the consumer-facing surface). Isolated for closer review; all update types (incl. major) grouped here.
  2. development-dependencies — catch-all for everything else (test/build/lint/docs tooling + the private example apps' deps).
  3. github-actions — its own single grouped PR (separate ecosystem, cannot be folded into the npm PRs).

Net effect: ~1 prod PR + 1 non-prod PR + 1 actions PR per week, down from one-per-major + a grouped minor/patch.

Why pattern-based, not dependency-type

The obvious config (dependency-type: production / development) is unreliable here: this repo centralizes versions in the pnpm catalog, and Dependabot currently misclassifies catalog dev-deps as production (dependabot-core#14824) — that would dump most dev tooling into the production group. Routing by package name (production group listed first, development "*" catch-all second, first-match wins) sidesteps the bug.

Notes

  • zod / hono / express intentionally land in development: they are devDependencies of the published packages (only the private example apps list them under dependencies), so their bumps don't change what consumers install. Easy to promote to production later if you'd prefer prod-level review.
  • When a published package gains a new runtime/peer dep, add its name to production-dependencies (documented inline).

Config-only change; no runtime or generated-output impact.

Summary by CodeRabbit

  • Chores
    • Updated dependency update rules for npm/pnpm packages to separate production and development dependency groups.
    • Refreshed the configuration notes for clearer guidance on update behavior.
    • Kept GitHub Actions update settings unchanged, aside from formatting and comments.

Split the npm ecosystem into two grouped PRs: one for the published packages'
runtime + peer dependencies (production), one catch-all for everything else
(development). GitHub Actions stays its own grouped PR (separate ecosystem).

Uses pattern-based routing rather than dependency-type, because Dependabot
misclassifies pnpm catalog dev-deps as production (dependabot-core#14824).
@coderabbitai

coderabbitai Bot commented Jul 4, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Updates .github/dependabot.yml to replace npm's minor/patch update-type grouping with two pattern-based groups (production-dependencies and development-dependencies), expands top-level documentation comments, and adjusts formatting in the github-actions block while preserving its existing schedule and behavior.

Changes

Dependabot Configuration Update

Layer / File(s) Summary
npm/pnpm dependency grouping rework
.github/dependabot.yml
Removes groups.npm-minor-and-patch (update-types based) grouping and replaces it with production-dependencies and development-dependencies pattern-based groups; expands documentation comments describing the new strategy and pnpm catalog behavior.
github-actions block formatting
.github/dependabot.yml
Adjusts quoting, spacing, and comments in the github-actions update block while keeping the weekly schedule, PR limit, and grouped patterns: ['*'] unchanged.

Estimated code review effort: 1 (Trivial) | ~5 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: Dependabot updates are regrouped into production versus non-production PRs.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/dependabot-group-prod-nonprod

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Jul 4, 2026

Copy link
Copy Markdown
Contributor

Fallow audit report

Found 3 findings.

Details
Severity Rule Location Description
minor fallow/unused-dev-dependency examples/package.json:15 Package '@tanstack/react-query' is in devDependencies but never imported; imported in other workspaces: packages/integration, packages/petstore-fastify
minor fallow/unused-dev-dependency examples/package.json:17 Package 'react' is in devDependencies but never imported; imported in other workspaces: packages/integration, packages/petstore-fastify
minor fallow/unused-dev-dependency packages/integration/package.json:24 Package 'fastify' is in devDependencies but never imported; imported in other workspaces: packages/petstore-contract, packages/petstore-fastify

Generated by fallow.

@github-actions

github-actions Bot commented Jul 4, 2026

Copy link
Copy Markdown
Contributor

Fallow audit report

0 inline findings selected for GitHub review.

@benjamineckstein
benjamineckstein merged commit 4eb78b0 into main Jul 4, 2026
14 of 15 checks passed

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
.github/dependabot.yml (1)

55-73: 🧹 Nitpick | 🔵 Trivial

Grouping all update types (incl. major) into one production PR is intentional, but note the CI-attribution tradeoff.

With majors and patches bundled together, a single failing major bump can block the whole PR — and grouped PRs don't indicate which dependency caused the failure, making triage slower than with the previous minor/patch-only grouping. This is explicitly a deliberate tradeoff per the doc comment, so just flagging as an operational consideration if production PRs start stalling frequently.

[reliability_and_resilience]

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/dependabot.yml around lines 55 - 73, This Dependabot grouping
intentionally bundles major and non-major production updates into one PR, but
the current config should clearly reflect the CI-attribution tradeoff so triage
expectations are set. Update the existing grouping comments near
production-dependencies in the dependabot config to explicitly note that a
failing major can block the whole grouped PR and make it harder to identify the
culprit dependency, while leaving the grouping behavior itself unchanged.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In @.github/dependabot.yml:
- Around line 55-73: This Dependabot grouping intentionally bundles major and
non-major production updates into one PR, but the current config should clearly
reflect the CI-attribution tradeoff so triage expectations are set. Update the
existing grouping comments near production-dependencies in the dependabot config
to explicitly note that a failing major can block the whole grouped PR and make
it harder to identify the culprit dependency, while leaving the grouping
behavior itself unchanged.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 11628e1d-a2b0-47d7-bab7-b362bbb93aff

📥 Commits

Reviewing files that changed from the base of the PR and between 0033201 and d590542.

📒 Files selected for processing (1)
  • .github/dependabot.yml

@benjamineckstein
benjamineckstein deleted the chore/dependabot-group-prod-nonprod branch July 4, 2026 13:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant